Many software programs are written with a view toward translating them into multiple human languages for multi-cultural distribution (a process known as globalization). One software development platform used for such purpose is the .NET Framework by Microsoft® that provides a large standard library from which software developers can develop assemblies, which are basically code libraries. In the Microsoft® Windows® environment, an assembly takes the form of a process assembly (EXE) or a library assembly (DLL). The code in an assembly is partially compiled into a Common Intermediate Language (CIL), which is then fully compiled into machine language at runtime by a Common Language Runtime (CLR) virtual machine (VM). The standard NET framework libraries include, among other things, standard classes, a resource manager, and forms.
When software is shipped to customers that speak different human languages, the software must be translated from one human language to a target human language. Such translations must be performed in conjunction with third-party translation services as well as involve software design engineers to recompile the translated software. In addition, software typically translated as a separate project after an initial English release by a third party company must be recertified by a test laboratory. Such recertification is costly and time consuming. Because of these factors, software vendors are sometimes limited by their ability to create translations of the software. Because the translation process is performed after the creation of the software, the translations are prone to error and delays because such issues cannot be adequately planned for when initially developing the software.
After the installation package is translated, it may need to be modified for the target operating system (OS), and recompiled manually by the software designer to deploy the translated deliverables. In short, the translation process requires the ongoing involvement of the software designer following completion of the translation.
Moreover, in power monitoring systems, the application software that handles data monitoring and reporting may instruct operators to interact with the power monitoring devices in a manner that involves a great risk of harm, even life-threatening harm, to the operator. As a result, the instructions provided by the power monitoring software must be accurate to avoid confusion as to how to operate or configure properly the power monitoring devices. When the software is being translated, it is imperative that the resource strings be translated accurately. Errors in translations or translations that are too long to fit within an allocated pixel area can result in improper, vague, or incomplete instructions being provided to the operator.
Thus, a need exists for an improved apparatus and method for automated translation of software into different languages without having to recompile the binary and other non-localizable deliverables. There is also a need for a system to perform translation from different sources of text strings to be translated. Another need exists for a translation system that facilitates third-party translation by importing and exporting strings to be translated and translated strings in a common format. Another need exists for a translation tool that allows translation of software to different languages without making significant software design changes. Still another need exists for a translation process that ensures that all strings are translated and that the translated strings are validated for pixel length to ensure that the entire translated string will be displayed to the operator.
The aspects of the present invention described herein are directed to satisfying one or more of these and other needs.